home *** CD-ROM | disk | FTP | other *** search
/ CD Ware Multimedia 1994 November / Cd Ware (Nro. 2) - Epimundo.iso / DOS / PG / COMBOX.ZIP / TEST.PAS < prev   
Encoding:
Pascal/Delphi Source File  |  1994-04-11  |  3.9 KB  |  170 lines

  1. Program Test;
  2.  
  3. uses
  4.    Global, Fields, EnumStrs,
  5.    App, Objects, Drivers, Memory, Views, Menus, Dialogs;
  6.  
  7. const
  8.   cmShowDialog = 1000;
  9.  
  10. type
  11.    TDemo = object ( TApplication )
  12.       Constructor Init;
  13.       Procedure HandleEvent ( var Event: TEvent ); virtual;
  14.       Procedure InitMenuBar; virtual;
  15.       end;
  16.  
  17. {========================================================================}
  18.  
  19. Constructor TDemo.Init;
  20.  
  21. var
  22.   Event : TEvent;
  23.  
  24. Begin
  25.    inherited Init;
  26.  
  27.    with Event do
  28.       begin
  29.       Event.What := evCommand;
  30.       Event.Command := cmShowDialog;
  31.       PutEvent ( Event );
  32.       end;
  33. End;
  34.  
  35. {========================================================================}
  36.  
  37. Procedure TDemo.InitMenuBar;
  38.  
  39. var
  40.   R: TRect;
  41.  
  42. Begin
  43.    GetExtent ( R );
  44. {   inc ( R.A.Y );}
  45.    R.B.Y := R.A.Y + 1;
  46.    MenuBar := New(PMenuBar, Init(R, NewMenu(
  47.               NewSubMenu('~F~ile', hcNoContext, NewMenu(
  48.                 NewItem('~D~emo Dialog','', kbNoKey, cmShowDialog, hcNoContext,
  49.                 NewLine(
  50.                 NewItem('E~x~it', 'Alt-X', kbAltX, cmQuit, hcNoContext, nil)))),
  51.               nil))));
  52. End;
  53.  
  54. {========================================================================}
  55.  
  56. Procedure ShowDialog;
  57.  
  58. var
  59.   Dialog : PDialog;
  60.   R : TRect;
  61.   Control : PView;
  62.   DataRec : record
  63.      Name : string [ 50 ];
  64.      Age  : integer;
  65.      Sex  : TSex;
  66.      Smoker : TSmoker;
  67.      Province : TProvince;
  68.      Amount : real;
  69.      end;
  70.  
  71. Begin
  72.    R.Assign(14,4,60,18);
  73.    Dialog := New ( PDialog, Init(R, 'New Client') );
  74.  
  75.    with Dialog^ do
  76.       begin
  77.       R.Assign(8,2,30,3);
  78.       Control := New(PInputLine, Init(R, 50));
  79.       Insert(Control);
  80.       R.Assign(2,2,8,3);
  81.       Insert(New(PLabel, Init(R, '~N~ame:', Control)));
  82.  
  83.  
  84.       R.Assign(37,2,41,3);
  85.       Control := New(PIntegerField, Init(R, '##'));
  86.       Insert(Control);
  87.       R.Assign(32,2,37,3);
  88.       Insert(New(PLabel, Init(R, '~A~ge:', Control)));
  89.  
  90.       R.Assign(7,5,19,6);
  91.       Control := New(PEnumeratorField, Init(R, enSex));
  92.       Insert(Control);
  93.       R.Assign(7,4,12,5);
  94.       Insert(New(PLabel, Init(R, 'Se~x~:', Control)));
  95.  
  96.       R.Assign(22,5,38,6);
  97.       Control := New(PEnumeratorField, Init(R, enSmoker));
  98.       Insert(Control);
  99.       R.Assign(22,4,38,5);
  100.       Insert(New(PLabel, Init(R, '~S~moking Status:', Control)));
  101.  
  102.       R.Assign(12,8,43,9);
  103.       Control := New(PEnumeratorField, Init(R, enProvince));
  104.       Insert(Control);
  105.       R.Assign(2,8,12,9);
  106.       Insert(New(PLabel, Init(R, '~P~rovince:', Control)));
  107.  
  108.       {try a few variations!}
  109.       { eg.  no decimals, percent sign, no commas, no dollar sign, etc }
  110.       R.Assign(12,9,43,10);
  111.       Control := New(PRealField, Init(R, '$###,###.##'));
  112.       Insert(Control);
  113.       R.Assign(2,9,12,10);
  114.       Insert(New(PLabel, Init(R, '~A~mount:', Control)));
  115.  
  116.       R.Assign(10,11,18,13);
  117.       Control := New(PButton, Init(R, 'O~k~', cmOK, bfDefault ));
  118.       Insert(Control);
  119.  
  120.       R.Assign(25,11,35,13);
  121.       Control := New(PButton, Init(R, 'Cancel', cmCancel, bfNormal));
  122.       Insert(Control);
  123.  
  124.       SelectNext(False);
  125.       end;
  126.  
  127.    with DataRec do
  128.       begin
  129.       Name := '';
  130.       Age := 20;
  131.       Sex := Male;
  132.       Smoker := NonSmoker;
  133.       Province := NS;
  134.       Amount := 100.0;
  135.       end;
  136.  
  137.    Dialog^.SetData ( DataRec );
  138.    DeskTop^.ExecView ( Dialog );
  139.    Dialog^.SetData ( DataRec );
  140.  
  141.    Dispose ( Dialog, Done );
  142. End;
  143.  
  144. {========================================================================}
  145.  
  146. Procedure TDemo.HandleEvent;
  147.  
  148. Begin
  149.    inherited HandleEvent ( Event );
  150.    if Event.What = evCommand then
  151.       begin
  152.       case Event.Command of
  153.          cmShowDialog : ShowDialog;
  154.          else Exit;
  155.          end;
  156.       ClearEvent ( Event );
  157.       end;
  158. End;
  159.  
  160. {========================================================================}
  161.  
  162. var
  163.   Demo : TDemo;
  164.  
  165. Begin
  166.    Demo.Init;
  167.    Demo.Run;
  168.    Demo.Done;
  169. End.
  170.